// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IDependencyResolver.cs" company="Scrum for Team System">
//   None
// </copyright>
// <summary>
//   Defines the IDependencyResolver type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace ScrumForTeamSystem.EventService.Infrastructure.Interfaces
{
    /// <summary>
    /// Defines the dependency resolver interface
    /// </summary>
    public interface IDependencyResolver
    {
        /// <summary>
        /// Gets the implementation of.
        /// </summary>
        /// <typeparam name="T">The type to return</typeparam>
        /// <returns>Instance of type specified</returns>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Pattern required generic type parameter")]
        T GetImplementationOf<T>();
    }
}